using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using WCell.Constants.World;
using WCell.RealmServer.Entities;
using WCell.RealmServer.Global;

namespace WCell.RealmServer.Instances
{
	/// <summary>
	/// Represents a Group or single Character (who can own an instance)
	/// </summary>
	public interface IInstanceHolderSet// : ICharacterSet
	{
		Character InstanceLeader { get; }

		InstanceInfo InstanceLeaderInfo { get; }

		void ForeachInstanceLog(Action<InstanceInfo> callback);

		/// <summary>
		/// Gets the Instance of the given Map that this Holder already holds
		/// or null.
		/// </summary>
		/// <returns></returns>
		BaseInstance GetActiveInstance(RegionInfo region);
	}
}
